The present invention relates generally to the field of network communications, and more particularly to a method of and system for managing chat sessions in a network that may be bandwidth constrained.
Internet chat applications are commonplace today. Chat sessions are used for the exchange of information between members in social or educational contexts, or in work environments. Members of teams or workgroups can exchange information within their team or workgroup through the use of a chat application.
In high bandwidth networks, users can freely join and participate in chat sessions. Users can initiate a chat session with any other user or group of users. There can be almost as many chat sessions active on a network at any particular time as there are users. In bandwidth constrained networks, such as wireless networks, distributed chat application can easily overwhelm the network.
Typically, users of a bandwidth constrained network have responsibility for implementing necessary controls on their own. When voice users share a common channel they can hear other users and they recognize the bandwidth limitations. For example, pilots and controllers at a busy airport generally police their own use of the network by appropriate vocal protocols regarding who may initiate and respond to selected communications over the network. However, in digital communications, such as chat, the bandwidth limitation is not apparent to the user.
One impediment to the use of self policing in a distributed chat environment is that all users must be schooled in and disciplined in the use of alternative network user protocols to effectively manage the network. In certain situations, such as military and police operations, personal communication devices are provided to members as tools but there are insufficient time and resources to implement and train members in effective chat management protocols.
Another problem associated with distributed chat applications in wireless or other bandwidth constrained networks is that the users do not always use the same personal communication device. For example, the personal communication device may be installed in a police vehicle that may be assigned to different officers over the course of the day or week. Thus, the network address or mobile identification number associated with the personal communications device is not always associated with the same user.
In chat applications, a user wishes to communicate with another user without regard to the network address of the other user. Most chat applications maintain a list of network addresses associated with users. To accommodate users using different devices, the list of users and network addresses could be updated dynamically; however, the list would become large for mobile applications. Additionally, updating the lists dynamically in real time would require a substantial amount of bandwidth. The amount of data set over the unreliable low bandwidth network links must be minimized.
It is an object of the present invention to provide a method of and system for managing distributed chat applications in a bandwidth constrained network.
The present invention provides a chat system that includes a chat server and a plurality of chat clients in a network that may be bandwidth constrained. Each chat client is configurable, in response to instructions from the chat server, to operate in either a master mode or a slave mode. In the master mode, a chat client is capable of initiating a chat session. In the slave mode, a chat client is incapable of initiating a chat session and may participate only in a chat session initiated by another chat client operating in the master mode.
The chat server maintains, or has access to, a list of names of users that are designated master users. A user logs onto the system from a host by sending a logon message over the network to the chat server. The host has installed thereon a chat client application that may be configured in either the master mode or the slave mode. The chat server determines if the user is a master user. If so, the chat server sends a xe2x80x9crun as masterxe2x80x9d reply to the host machine and logs the user onto the system, by entering the user name and network address of the host in a list of logged on users. If the user is not a master user, then the chat server sends a xe2x80x9crun as slavexe2x80x9d reply to the host machine and logs the user onto the system, again by entering the user name and network address of the host in a list of logged on users.
An invitor user initiates, or adds a member to, a chat session according to the present invention by selecting a user name form a list of potential invitees or by entering a user name. The invitor client sends an invitation to the invitee""s user name at a proxy address at the chat server. Preferably, the invitor client enters the invitee""s user name in an invitee list. The chat server determines if the invitee user is logged on. If not, the chat server informs the invitor, and the invitor client removes the invitee from the invitee list. If the chat server determines that the invitee is logged on, the chat server forwards the invitation to the invitee at the invitee""s network address. The invitee client prompts the invitee user to accept or decline the invitation. If the invitee user declines the invitation, the invitee client sends a decline message to the invitor client at the network address of the invitor client. If the invitee user accepts the invitation, the invitee client sends a join message to the invitor client, and the invitor client adds the invitee""s user name and client network address to a chat member list. Then, the chat session proceeds with the chat member client sending chat input to the master client and the master client sending chat session updates to the member clients.